MiniZinc \cite{MiniZinc} es un lenguaje de medio-nivel para el modelado de restricciones, aceptado comunmente por la
comunidad académica, y con visos de convertirse en un estándar en el modelado de restricciones. Su sencillez en la 
gramática, así cómo su gran potencia expresiva, hacen de MiniZinc \cite{MiniZinc} una herramienta muy útil para la definición
de modelos de restricciones. El lenguaje MiniZinc \cite{MiniZinc}, está construido sobre un lenguaje de más bajo nivel, FlatZinc \cite{MiniZincTutorial},
implementado en gran número de resolutores de restricciones (entre ellos Gecode \cite{Gecode}). La traducción
a FlatZinc desde MiniZinc viene incorporada con la distribución de MiniZinc, por lo que la ejecución de los 
modelos de restricciones sobre los resolutores es sumamente sencilla.

Por todas estas razones se ha elegido MiniZinc \cite{MiniZinc} cómo herramienta para modelar las restricciones en un 
lenguaje que los resolutores aceptaran, evitando así, integrar la herramienta junto con el resolutor, lo que requeriría
mayor tiempo de desarrollo, dificultad, y al fin y al cabo, una complejidad añadida inncesaria.

Cómo es lógico, el hecho de interponer una capa intermedia entre el resolutor y la herramienta, supone una pérdida
de rendimiento. Sin embargo, no se considera primordial, pues es de esperar que los resolutores tengan implementaciones 
propias de FlatZinc, de forma que sean capaces de optimizar los modelos en gran medida. Además, hoy en día se disponen 
de sistemas informáticos sumamente potentes, por lo que la perdida de rendimiento se intuye despreciable.